package com.st.advise;

/**
 * 日志打印
 */
import java.util.Date;

import org.aspectj.lang.ProceedingJoinPoint;

public class TimeAdvise {

	public void before() {
		// 方法执行前的通知
		System.out.println("前置通知");
		System.out.println(new Date());
	}

	public void after() {
		// 方法执行后的通知
		System.out.println("后置通知");
		System.out.println(new Date());
	}

	public void afterThrowing() {
		// 异常执行后的通知
		System.out.println("异常后置通知");
		System.out.println(new Date());
	}

	// 环绕通知
	public Object around(ProceedingJoinPoint point) throws Throwable {

		Date start = new Date();

		// 让原来的方法执行
		Object obj = point.proceed();

		Date end = new Date();
		System.out.println("环绕通知记录的执行时间是:" + (end.getTime() - start.getTime())+"毫秒");
		//
		return obj;
	}
}
